package sqlDB

//用户表
type UserTable struct {
	ID        uint64 `gorm:"column:id;primaryKey;autoIncrement;comment:自增长主键" json:"-"`              //自增长主键
	UserID    string `gorm:"column:userID;type:varchar(255);uniqueIndex;comment:用户ID" json:"userID"` //用户ID
	Username  string `gorm:"column:username;type:varchar(255);comment:用户姓名" json:"username"`         //用户名
	Password  string `gorm:"column:password;type:varchar(255);comment:用户密码" json:"-"`                //密码，默认用户的密码是MD5 32加密数据
	CreatedAt string `gorm:"column:createdAt;type:varchar(32);comment:创建时间" json:"createdAt"`        //创建时间
	UpdatedAt string `gorm:"column:updatedAt;type:varchar(32);comment:更新时间" json:"updatedAt"`        //更新时间
}

func (UserTable) TableName() string {
	return "users"
}

//设备表
type DeviceTable struct {
	ID            uint64 `gorm:"column:id;primaryKey;autoIncrement;comment:自增长主键" json:"-"`                  //自增长主键
	DeviceID      string `gorm:"column:deviceID;type:varchar(255);uniqueIndex;comment:设备ID" json:"deviceID"` //设备ID
	DeviceLocalIP string `gorm:"column:deviceLocalIP;type:varchar(255);comment:设备IP" json:"deviceLocalIP"`   //设备IP
	SerialNumber  string `gorm:"column:serialNumber;type:varchar(255);comment:设备序列号" json:"serialNumber"`    //设备序列号
	Status        string `gorm:"column:status;type:varchar(3);comment:设备状态: ON:在线; OFF:离线" json:"status"`    //在线:ON, 离线:OFF
	CreatedAt     string `gorm:"column:createdAt;type:varchar(32);comment:创建时间" json:"createdAt"`            //创建时间
	UpdatedAt     string `gorm:"column:updatedAt;type:varchar(32);comment:更新时间" json:"updatedAt"`            //更新时间
}

func (DeviceTable) TableName() string {
	return "devices"
}

//设备通道表
type ChannelTable struct {
	ID           uint64 `gorm:"column:id;primaryKey;autoIncrement;comment:自增长主键" json:"-"`                    //自增长主键
	ChannelID    string `gorm:"column:channelID;type:varchar(255);uniqueIndex;comment:通道ID" json:"channelID"` //设备通道ID
	ChannelName  string `gorm:"column:channelName;type:varchar(255);comment:通道名称" json:"channelName"`         //设备通道名称
	ChannelAlias string `gorm:"column:channelAlias;type:varchar(255);comment:通道别名" json:"channelAlias"`       //通道别名
	DeviceID     string `gorm:"column:deviceID;type:varchar(255);comment:设备ID" json:"deviceID"`               //设备ID
	Status       string `gorm:"column:status;type:varchar(3);comment:通道状态: ON:在线; OFF:离线" json:"status"`      //在线:ON, 离线:OFF
	CreatedAt    string `gorm:"column:createdAt;type:varchar(32);comment:创建时间" json:"createdAt"`              //创建时间
	UpdatedAt    string `gorm:"column:updatedAt;type:varchar(32);comment:更新时间" json:"updatedAt"`              //更新时间
}

func (ChannelTable) TableName() string {
	return "channels"
}
